"""
日志配置模块，用于设置日志格式和输出
"""
import os
import logging
from datetime import datetime
from tests.config.config import LOGS_DIR


def setup_logger(log_level=logging.INFO):
    """
    设置日志记录器
    
    Args:
        log_level: 日志级别，默认为INFO
        
    Returns:
        配置好的Logger实例
    """
    # 确保日志目录存在
    if not os.path.exists(LOGS_DIR):
        os.makedirs(LOGS_DIR)
    
    # 创建日志文件名，使用当前时间戳
    log_file = os.path.join(LOGS_DIR, f"test_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log")
    
    # 配置根日志记录器
    logger = logging.getLogger()
    logger.setLevel(log_level)
    
    # 清除之前的处理器
    if logger.handlers:
        logger.handlers.clear()
    
    # 创建文件处理器
    file_handler = logging.FileHandler(log_file, encoding='utf-8')
    file_formatter = logging.Formatter(
        '%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'
    )
    file_handler.setFormatter(file_formatter)
    logger.addHandler(file_handler)
    
    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_formatter = logging.Formatter(
        '%(asctime)s - %(levelname)s - %(message)s'
    )
    console_handler.setFormatter(console_formatter)
    logger.addHandler(console_handler)
    
    return logger 